package com.itheima.reggie.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.reggie.dto.DishDto;
import com.itheima.reggie.pojo.Dish;

import java.util.List;

public interface DishService extends IService<Dish> {

    /**
     * 按条件分页查询菜品
     * @param curPage
     * @param pageSize
     * @param name
     * @return
     */
    Page<DishDto> queryDishDtoPage(Integer curPage, Integer pageSize, String name);

    /**
     * 根据菜品id查询菜品和菜品口味(嵌套查询)
     * @param id
     * @return
     */
    DishDto queryDishDtoById(Long id);

    /**
     * 根据菜品id查询菜品和菜品口味(连接查询)
     * @param id
     * @return
     */
    DishDto queryDishDtoByDishId(Long id);

    /**
     * 修改菜品信息
     * @param dishDto
     */
    void updateDishDto(DishDto dishDto);

    /**
     * 添加菜品和口味
     * @param dishDto
     */
    void addDishDto(DishDto dishDto);

    /**
     * 删除菜品以及菜品对应的口味
     * @param ids
     */
    void batchDeleteDishDto(List<Long> ids);

    /**
     * 根据分类id查询所有起售菜品
     * @param categoryId
     * @param name
     * @return
     */
    List<DishDto> queryDishDtoList(Long categoryId, String name, Integer status);

    /**
     * 查询套餐中的菜品和份数
     * @param setMealId
     * @return
     */
    List<DishDto> queryDishDtoBySetMealId(Long setMealId);
}
